'use strict'

const ERROR_CODE = {
  ANY_API                        : 0,
  LOGIN_API                      : 10,
  UPLOAD_IMG_TO_DFS              : 11,
  VERIFY_BY_VIDEO                : 12,
  VERIFY_BY_LIVE                 : 13,
  VERIFY_BY_AUDIO                : 14,
  VERIFY_BY_AUTIO_ALBUM          : 15,
  DELETE_REPORT_BY_IDS           : 16,
  GET_REPORT_BY_PAGE             : 17,
  GET_DATA_TYPE                  : 18,
  GET_USER_BY_PAGE               : 19,
  GET_PAGE_BY_MENU_ID            : 20,
  ADD_DATA                       : 21,
  GET_DATA_BY_PAGE               : 22,
  DELETE_DATA_BY_IDS             : 23,
  GET_DATA_BY_PACK_ID            : 24,
  GET_DATA                       : 25,
  ADD_POST                       : 26,
  UPDATE_DATA                    : 27,
  DELETE_POST_BY_IDS             : 28,
  ADD_CAR_BRAND                  : 29,
  ADD_CAR_MODEL                  : 30,
  FILTER_DATA_BY_PRODUCT_LINE_ID : 31,
  ADD_PRO                        : 32,
  UPDATE_DATA                    : 33,
  GET_PRO_BY_PROID               : 34,
  GET_CALENDAR_LATER             : 35,
  UPDATE_CALENDAR                : 36,
  GET_CALENDAR_BY_YEARMONTH      : 37,
  GET_CALENDARINFO_BY_ID         : 38,
  GET_VENUE_BY_AREA              : 39,
  GET_LAYOUT                     : 40,
  GET_TERMINAL                   : 41,
  GET_TYPE                       : 42,
  GET_AREA                       : 43,
  GET_POST_BY_PAGE               : 44,
  GET_POST_BY_POST_ID            : 45,
  BLOCK_USER_BY_IDS              : 46,
  GET_VEHICLE_LIST_BY_CAPITAL    : 47,
  GET_VEHICLE_SPEC_BY_MODELID    : 48,
  GET_VEHICLE_SPEC_BY_SPECID     : 49,
  UPDATE_VEHICLE_SPEC_BY_SPECID  : 50,
  GET_POST_CATEGORY              : 51,
  GET_CAR_TYPE                   : 52,
  GET_MODEL_DETAIL_BY_SPECID     : 53,
  UPLOAD_SINGLE_PIC              : 54,
  UPDATE_VEHICLE_MODEL_BY_MODELID: 55,
  GET_MYOWN_COLLECTION           : 56,
  UPDATE_MY_COLLECTION           : 57,
  SEARCH_MENU                    : 58,
  ADD_PANEL                      : 59,
  GET_PANEL_BY_PRODUCT_LINE_ID   : 60,
  GET_BLOCK_BY_PANEL_ID          : 61, 
  ADD_BLOCK                      : 62, 
  UPDATE_BLOCK                   : 63,
  RELEASE_PANEL                  : 64, 
  UPDATE_BLOCK_ORDERS            : 65,
  GET_USER_INFO                  : 66,
  DELETE_FAVORITE                : 67,
  LOCK_PANEL                     : 68,
  GENERATE_MOBILE_MSG_CODE       : 69,
  
  GET_ZOOKEEPER_NODE             : 70,
  GET_BIZCONF                    : 71,

  ADD_ORDERS                     :72,
  SWITCH_TRUNK                   :73,
  PUBLISH_BRANCH                 :74,
  GET_COMMENT_BY_POST_ID         :75,
  GET_BRAND_LIST_BY_NAME_PREFIX  :76,
  ADD_MODEL                      :77,
  ADD_POLL                       :78,
/////////////////////////////////////////

  NO_ERROR                           : 0,
  NOT_LOGIN_ERROR                    : 10,
  LOGOUT_FAIL_ERROR                  : 11,
  //LOGOUT_ERROR                     : 12,//deprecated
  SYSTEM_ERROR                       : 13,
  LESS_OF_DATA_ERROR                 : 14,
  INVALID_FORMAT_ERROR               : 15,
  INVALID_JSON_ERROR                 : 16,
  STATUS_CODE_ERROR                  : 17,
  FILE_UPSTREAM_ERROR                : 18,
  INVALID_IMG_TYPE_ERROR             : 19,
  INVALID_PARAM_ERROR                : 20,
  RETURN_NULL_DATA_ERROR             : 21,
  CHECK_AUTH_ERROR                   : 22,
  PASSWORD_CHECK_ERROR               : 23,
  UPLOAD_IMG_TO_DFS_ERROR            : 11,
  SEARCH_DN_BY_NAME_BIND_ERROR       : 24,
  SEARCH_DN_BY_NAME_SEARCH_ERROR     : 25,
  UNIMPLEMENTED_METHOD_ERROR         : 26,
  UPSERT_USER_ERROR                  : 27,
  DATABASE_GET_CONNECTION_ERROR      : 28,
  DATABASE_QUERY_ERROR               : 29,
  USER_NOT_FOUND_ERROR               : 30,
  DATABASE_ERROR                     : 31,
  DATABASE_COMMIT_ERROR              : 32,
  DATABASE_NO_RECORD_ERROR           : 33,
  DATABASE_BATCH_QUERY_ON_END_ERROR  : 34,
  FAIL_DUE_TO_NO_LOCK_ERROR          : 35,
  DISCONTINUOUS_ORDERS_ERROR         : 36,
  ORDERS_NOT_FROM_1_ERROR            : 37,
  REPEATED_COLLECTION_ERROR          : 38,
  COLLECTION_NOT_EXIST_ERROR         : 39,
  TIMEOUT_ERROR                      : 40,
  FAIL_DUE_TO_REPEATED_LOCK_ERROR    : 41,
  DATABASE_BATCH_QUERY_ON_BEGIN_ERROR: 42,
  DATABASE_DATA_HAS_INSETED          : 43,
  ORDER_NOT_EXIST                      : 44,
  ORDER_HAS_INSERTED                   : 45,
  SMS_SDK_ERROR                     : 46,
  USER_FORBID_ERROR                  : 46,

  BAD_INPUT_PARAM_ERROR              : 99,

  NO_ERROR_CODE : 0,
};

const ERROR_MSGS = {
  [ERROR_CODE.NOT_LOGIN_ERROR                    ] : '未登录',
  [ERROR_CODE.TOKEN_EXPIRE_ERROR                 ] : '调用小p接口失败或token过期!',
  [ERROR_CODE.LOGOUT_FAIL_ERROR                  ] : '注销失败',
  [ERROR_CODE.SYSTEM_ERROR                       ] : '接口调用失败',
  [ERROR_CODE.LESS_OF_DATA_ERROR                 ] : '缺少参数',
  [ERROR_CODE.INVALID_FORMAT_ERROR               ] : '参数格式错误',
  [ERROR_CODE.INVALID_JSON_ERROR                 ] : 'JSON parse 失败',
  [ERROR_CODE.STATUS_CODE_ERROR                  ] : '状态码不成功',
  [ERROR_CODE.FILE_UPSTREAM_ERROR                ] : '获取图片信息失败',
  [ERROR_CODE.INVALID_IMG_TYPE_ERROR             ] : '图片格式不正确',
  [ERROR_CODE.UPLOAD_IMG_TO_DFS_ERROR            ] : '图片上传失败',
  [ERROR_CODE.INVALID_PARAM_ERROR                ] : '参数不合法',
  [ERROR_CODE.RETURN_NULL_DATA_ERROR             ] : '返回数据为空',
  [ERROR_CODE.CHECK_AUTH_ERROR                   ] : '权限验证失败',
  [ERROR_CODE.PASSWORD_CHECK_ERROR               ] : '密码验证失败',
  [ERROR_CODE.SEARCH_DN_BY_NAME_BIND_ERROR       ] : '搜索Dn时绑定失败',
  [ERROR_CODE.SEARCH_DN_BY_NAME_SEARCH_ERROR     ] : '搜索Dn时搜索失败',
  [ERROR_CODE.UNIMPLEMENTED_METHOD_ERROR         ] : '未实现的方法',
  [ERROR_CODE.UPSERT_USER_ERROR                  ] : '更新用户表失败',
  [ERROR_CODE.DATABASE_GET_CONNECTION_ERROR      ] : '数据库创建连接失败',
  [ERROR_CODE.DATABASE_QUERY_ERROR               ] : '数据库查询失败',
  [ERROR_CODE.USER_NOT_FOUND_ERROR               ] : '用户不存在',
  [ERROR_CODE.DATABASE_ERROR                     ] : '数据库操作失败',
  [ERROR_CODE.DATABASE_DATA_HAS_INSETED          ] : '数据重复插入',
  [ERROR_CODE.DATABASE_COMMIT_ERROR              ] : '数据库事务提交失败',
  [ERROR_CODE.DATABASE_NO_RECORD_ERROR           ] : '记录不存在',
  [ERROR_CODE.DATABASE_BATCH_QUERY_ON_END_ERROR  ] : '数据库批量查询结束后验证失败',
  [ERROR_CODE.FAIL_DUE_TO_NO_LOCK_ERROR          ] : '未加锁导致更新失败',
  [ERROR_CODE.DISCONTINUOUS_ORDERS_ERROR         ] : '非连续的顺序',
  [ERROR_CODE.ORDERS_NOT_FROM_1_ERROR            ] : '顺序没有从1开始',
  [ERROR_CODE.REPEATED_COLLECTION_ERROR          ] : '重复收藏数据',
  [ERROR_CODE.COLLECTION_NOT_EXIST_ERROR         ] : '收藏不存在',
  [ERROR_CODE.TIMEOUT_ERROR                      ] : '接口超时',
  [ERROR_CODE.FAIL_DUE_TO_REPEATED_LOCK_ERROR    ] : '重复加锁导致更新失败',
  [ERROR_CODE.DATABASE_BATCH_QUERY_ON_BEGIN_ERROR] : '数据库批量查询开始前验证失败',
  [ERROR_CODE.GET_ZOOKEEPER_NODE]                  : '查询zookeeper失败',
  [ERROR_CODE.GET_BIZCONF]                         :  '根据appId查询bizconf失败',
  [ERROR_CODE.SMS_SDK_ERROR]                       : '短信发送失败',
  [ERROR_CODE.SWITCH_TRUNK]                        : '切换trunk失败',
  [ERROR_CODE.PUBLISH_BRANCH]                      : '生成发布计划失败',
  [ERROR_CODE.ORDER_NOT_EXIST]                     : '分支不存在',
  [ERROR_CODE.ORDER_HAS_INSERTED]                  : '分支已存在',
  [ERROR_CODE.MODIFY_VERSION]                      : '更新package.json的verision失败',
  [ERROR_CODE.GET_ORDER_DETAIL]                    : '查询工单详情失败',
  [ERROR_CODE.BAD_INPUT_PARAM_ERROR]               : '输入参数错误解析错误',
  [ERROR_CODE.USER_FORBID_ERROR]                   : '你的帐号已被封禁，无法登录',
  [ERROR_CODE.NO_ERROR                           ] : 'Ok',
};

let ctx = {
  genCode   : function(apiNo, errNo){return apiNo * 100 + errNo;},
  transErrNo: function(errNo) {
      return ERROR_MSGS[errNo]; }
};
for(let k in ERROR_CODE){ctx[k] = ERROR_CODE[k];}

const ERROR_CODE_CTX = Object.freeze(ctx);

module.exports = ERROR_CODE_CTX;


